home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
tex
/
macros
/
misc
/
ltugbot.sty
< prev
next >
Wrap
Text File
|
1991-08-13
|
12KB
|
349 lines
% ***** LTUGBOT.STY ***** 6 Feb 88
% last revised 1 Mar 89
%
% Hacks to pieces of article.sty to support a rudimentary
% pseudo-TUGboat format.
%
% Incorporates ideas and elements from these TUGboat authors:
% Adrian Clark
% need some more fonts that aren't activated in lfonts
\font\sevbf=cmbx7
% redo definition of 8pt from latex (lfonts), to install amcsc8 instead
% of de-magnified amcsc10
%\catcode`\@=11
\def\viiipt{\textfont\z@\egtrm
\scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm
\textfont\@ne\egtmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\fivmi
\textfont\tw@\egtsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivsy
\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
\def\prm{\fam\z@\egtrm}%
\def\unboldmath{\everymath{}\everydisplay{}\@nomath
\unboldmath\@boldfalse}\@boldfalse
\def\boldmath{\@subfont\boldmath\unboldmath}%
\def\pit{\fam\itfam\egtit}\textfont\itfam\egtit
\scriptfont\itfam\sevit \scriptscriptfont\itfam\sevit
\def\psl{\@getfont\psl\slfam\@viiipt{cmsl8}}%
\def\pbf{\@getfont\pbf\bffam\@viiipt{cmbx8}}%
\def\ptt{\@getfont\ptt\ttfam\@viiipt{cmtt8}}%
\def\psf{\@getfont\psf\sffam\@viiipt{\@mss\@ptscale8}}%
\def\psc{\@getfont\psc\scfam\@viiipt{amcsc8}}%
\def\ly{\fam\lyfam\egtly}\textfont\lyfam\egtly
\scriptfont\lyfam\sixly \scriptscriptfont\lyfam\fivly
\@setstrut \rm}
% redo definition of 10pt, to install \sevenbf as \*scriptfont for \bffam
\def\xpt{\textfont\z@\tenrm
\scriptfont\z@\sevrm \scriptscriptfont\z@\fivrm
\textfont\@ne\tenmi \scriptfont\@ne\sevmi \scriptscriptfont\@ne\fivmi
\textfont\tw@\tensy \scriptfont\tw@\sevsy \scriptscriptfont\tw@\fivsy
\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
\textfont\@ne\tenmi
\textfont\tw@\tensy \textfont\lyfam\tenly
\@boldfalse}\@boldfalse
\def\boldmath{\@ifundefined{tenmib}{\global\font\tenmib\@mbi
\global\font\tensyb\@mbsy
\global\font\tenlyb\@lasyb\relax\@addfontinfo\@xpt
{\def\boldmath{\everymath{\mit}\everydisplay{\mit}\@prtct\@nomathbold
\textfont\@ne\tenmib \textfont\tw@\tensyb
\textfont\lyfam\tenlyb \@prtct\@boldtrue}}}{}\@xpt\boldmath}%
\def\prm{\fam\z@\tenrm}%
\def\pit{\fam\itfam\tenit}\textfont\itfam\tenit \scriptfont\itfam\sevit
\scriptscriptfont\itfam\sevit
\def\psl{\fam\slfam\tensl}\textfont\slfam\tensl
\scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl
\def\pbf{\fam\bffam\tenbf}\textfont\bffam\tenbf
\scriptfont\bffam\sevbf \scriptscriptfont\bffam\sevbf
\def\ptt{\fam\ttfam\tentt}\textfont\ttfam\tentt
\scriptfont\ttfam\tentt \scriptscriptfont\ttfam\tentt
\def\psf{\fam\sffam\tensf}\textfont\sffam\tensf
\scriptfont\sffam\tensf \scriptscriptfont\sffam\tensf
\def\psc{\@getfont\psc\scfam\@xpt{\@mcsc}}%
\def\ly{\fam\lyfam\tenly}\textfont\lyfam\tenly
\scriptfont\lyfam\sevly \scriptscriptfont\lyfam\fivly
\@setstrut \rm}
%\catcode`\@=12
% normal TUGboat dimensions
\@twosidetrue % for odd/even asymmetry in running heads
\twocolumn % two columns
\sloppy % make those columns justify
%\flushbottom % but ensure they line up
\columnsep 1.5pc % space between columns
\columnwidth 18.75pc % width of each column
\parindent 20pt % paragraph indent
\parskip 0pt % no inter-paragraph space
\leftmargini 2em % unchanged
\leftmarginv .5em % unchanged
\leftmarginvi .5em % unchanged
\oddsidemargin 0pt % was 42pt
\evensidemargin 0pt % was 84pt
\topmargin -2.5pc % was 0pt
\headheight 12pt % height of running head, unchanged
\headsep 20pt % distance between header and text
\marginparwidth 48pt % don't use marginal notes
\marginparsep 10pt % in TUGboat
\textheight 54pc % height of text on page
\textwidth 39pc % total width of a page
%\nofiles
\itemsep=2pt plus 2pt minus 1pt
\def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
\abovedisplayskip=3pt plus 3pt minus 1pt \belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\z@ plus3pt \belowdisplayshortskip=1pt plus3pt minus1pt}
\def\small{\@setsize\small{11pt}\ixpt\@ixpt
\abovedisplayskip=2.5pt plus2.5pt minus1pt\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\z@ plus2pt \belowdisplayshortskip=1pt plus2pt minus1pt}
\def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt
\abovedisplayskip=3pt plus 3pt minus 1pt \belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\z@ plus3pt \belowdisplayshortskip=1pt plus3pt minus1pt}
\def\@listi{\parsep=1pt plus 1pt minus 1pt
\itemsep=\parsep}
\def\@listii{\leftmargin\leftmarginii
\labelwidth=\leftmarginii \advance\labelwidth-\labelsep
\topsep=2pt plus 1pt minus 1pt
\parsep=1pt plus 1pt minus 1pt
\itemsep=\parsep}
\def\@listiii{\leftmargin=\leftmarginiii
\labelwidth=\leftmarginiii \advance\labelwidth-\labelsep
\topsep=1pt plus 1pt minus 1pt
\parsep=\z@
\itemsep=\topsep}
\partopsep=\z@ \topsep=3pt plus1pt minus1pt
\parsep=3pt plus 1pt minus 1pt \itemsep=\parsep
% not ordinarily in LaTeX, but usually wanted in TUGboat
\clubpenalty=10000
\widowpenalty=10000
% modify some style elements
% Section titles
\newif\ifSecTitle \SecTitlefalse
\newskip\Tabskss
\Tabskss=0pt plus 1000pt minus 1000pt
\newskip\AboveTitleSkip \AboveTitleSkip=12pt % 10pt plus 2pt minus 2pt
\newskip\BelowTitleSkip \BelowTitleSkip=8pt % plus 1pt minus 1pt
\font \sixteenssb=cmssbx10 scaled \magstep3
\let\titlefont=\sixteenssb
\newbox\T@stBox
\setbox\T@stBox=\hbox{\titlefont O}
\newdimen\stfontheight \stfontheight=\ht\T@stBox
\newdimen\strulethickness \strulethickness=.6pt
\newcount\n@stnum \n@stnum=0
\def \sthrule{\hrule height\strulethickness depth 0pt }
\def \stvrule{\vrule height 2\stfontheight depth\stfontheight
width\strulethickness }
\def \sectitlebox #1<{\vbox{\sthrule
\hbox to \hsize{\stvrule\hfil #1\hfil\vrule width\strulethickness }%
\sthrule }}
\def \secsep{\vskip 5\baselineskip}
\def \sectitle#1{\SecTitletrue \def\s@ctitle{#1}}
\def \@sectitle#1{\par\penalty-1000\secsep
\n@stnum=0
{\def\\{ }\setbox\T@stBox=\hbox{\titlefont#1}%
\ifdim\wd\T@stBox < \hsize \def\result{\unhbox\T@stBox}%
\else \def\\{\cr\noalign{\global\advance\n@stnum by 1 }}%
\setbox\T@stBox=\vbox{\titlefont
\halign{\hfil##\hfil\cr#1\crcr}}%
\def\result{\vbox{\unvbox\T@stBox}}\fi
\ifnum\n@stnum=1 \def\stvrule{\vrule height 3.5\stfontheight
depth\stfontheight width\strulethickness }\fi
\centerline{\sectitlebox \titlefont\result<}}%
\nobreak \vskip\baselineskip }
\newskip\AboveTitleSkip \AboveTitleSkip=12pt
\newskip\BelowTitleSkip \BelowTitleSkip=8pt
\newdimen\PreTitleDrop \PreTitleDrop=0pt
\def\maketitle{\par
\ifdim\PreTitleDrop > 0pt
\loop
\ifdim \PreTitleDrop > \textheight
\vbox{}\vfil\eject
\advance\PreTitleDrop by -\textheight
\repeat
\vbox to \PreTitleDrop{}
\PreTitleDrop=0pt
\fi
\begingroup
\def\thefootnote{\fnsymbol{footnote}}
\def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}}
\@maketitle
\@thanks
\endgroup
\setcounter{footnote}{0}
\let\maketitle\relax
\let\@maketitle\relax
\gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
% modified \@maketitle to prevent 2 occurrences of \@thanks in footnote
% rw 12 Feb 89
%\def\@maketitle{\ifSecTitle \SecTitlefalse
% \else \vskip\AboveTitleSkip \fi
% {\hyphenpenalty=10000 \interlinepenalty=10000
% \setbox0=\hbox{\ignorespaces\@author}%
% rule added above title to conform to updated (89) style
% bb 18 Feb 89
\newdimen\strulethickness \strulethickness=.6pt
\def\emptythanks#1{}
\def\@maketitle{\ifSecTitle \SecTitlefalse
\@sectitle{\s@ctitle}%
\else \vskip\AboveTitleSkip
\kern\topskip
\hrule height\z@ depth\z@ width 10pt
\kern-\topskip
\kern-\strulethickness
\hrule height\strulethickness depth\z@
\kern\medskipamount
\fi
{\hyphenpenalty=10000 \interlinepenalty=10000
\setbox0=\hbox{\let\thanks\emptythanks\ignorespaces\@author}%
{\noindent\bf\ignorespaces\@title\endgraf}%
\ifdim \wd0 < 5pt % omit if author is null
\else \nobreak \vskip 4pt % 4pt + \BelowTitleSkip = \baselineskip
{\leftskip=\parindent \noindent\@author\endgraf}%
\fi \nobreak \vskip\BelowTitleSkip }}
\def\fnum@figure{{\bf Figure \thefigure}}
\def\quote{\list{}{\rightmargin.5\leftmargin}\item[]}
% From Dominik Wujastyk's font article. First paragraph of a quotation
% will not be indented, and right margin is decreased for narrow columns.
\renewcommand{\quotation}{\list{}{\listparindent 1.5em
\rightmargin.5\leftmargin\parsep 0pt plus 1pt}\item[]}
% make it possible to use the standard issue/date job file
\newcount\issueseqno
\def \v@lx{\gdef\volx{Volume~\volno~(\volyr), No.~\issno}}
\def \volyr{}
\def \volno{}
\def \vol #1,#2.{\gdef\volno{#1\unskip}%
\gdef\issno{\ignorespaces#2\unskip}%
\setbox0=\hbox{\volyr}%
\ifdim \wd0 > .2em \v@lx \fi }
\def \issdate #1#2 #3.{\gdef\issdt{#1#2 #3}\gdef\volyr{#3}%
\gdef\bigissdt{#1{\smc\uppercase{#2}} #3}%
\setbox0=\hbox{\volno}%
\ifdim \wd0 > .2em \v@lx \fi }
\input tugbot.dates
% Fix up the running heads and footers.
% Only one style supported; suppress LaTeX's separate definitions.
\def \TUB{TUGboat}
\def \rtitlex{\TUB, \volx }
\def\@oddhead{\hbox{}\rm\rtitlex \hfil \thepage}
\def\@evenhead{\rm \thepage\hfil \rtitlex}
\def\@oddfoot{}
\def\@evenfoot{}
\def\ps@headings{}
\pagestyle{headings}
% Miscellaneous defs from plain tugbot.sty.
\font\manual=nwmanfnt % to avoid problems while old manfnt is preloaded
\def \MF{{\manual META}\-{\manual FONT}}
\def \careof{\leavevmode\hbox{\raise.75ex\hbox{c}\kern-.15em
/\kern-.125em\smash{\lower.3ex\hbox{o}}} \ignorespaces}
\def \sfrac#1/#2{\leavevmode\kern.1em
\raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
/\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
% Support ad-hoc strut construction.
\def \makestrut[#1;#2]{\vrule height#1 depth#2 width\z@ }
\def \d@sh#1{\nobreak\thinspace#1\penalty0\thinspace}
\def \dash{\d@sh{--}}
\def \Dash{\d@sh{---}}
% Hack to permit automatic hyphenation after an actual hyphen.
\def\hyph{-\penalty0\hskip0pt\relax }
\def\slash{/\penalty0\hskip0pt} % "breakable" slash
% utility registers
\newcount\TestCount
% various logos and abbreviations
\def \AMSTeX{\leavevmode\hbox{$\cal A\kern-.2em\lower.376ex
\hbox{$\cal M$}\kern-.2em\cal S$-\TeX}}
\def \LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex
\hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX}
\def \BibTeX{{\rm B\kern-.05em{\sc i\kern-.025emb}\kern-.08em\TeX}}
\font\manual=nwmanfnt % to avoid problems while old manfnt is preloaded
\def \MF{{\manual META}\-{\manual FONT}}
\def \slMF{{\manual 89:;}\-{\manual <=>:}} % slant the logo
\def \MFB{{\sl The \slMF book}}
\def \mf{{\sc Metafont}}
\def \Pas{Pascal}
\def \PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
\def \PiCTeX{\PiC\kern-.11em\TeX}
\def \PS{Post\-Script}
\def \SliTeX{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em\TeX}}
\def \TB{{\sl The \TeX book}}
\def \UNIX{{\sc unix}}
\def \TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT}
\def \TUB{TUGboat}
\def \VAX{\leavevmode\hbox{V\kern-.12em A\kern-.1em X}}
\def \WEB{{\tt WEB}}
% Redefine style of section headings to look more like TUGboat.
% Start with definitions from art10.sty . (Only \section correct so far.)
%
% \vskip 8pt \vskip\parskip before; \vskip 4pt after
% Negative beforeskip suppresses following parindent.
\def\section{\@startsection {section}{1}{\z@}{-8pt}{4pt}{\normalsize\bf}}
\def\subsection{\@startsection{subsection}{2}{\z@}{-8pt}{4pt}{\normalsize\bf}}
\def\subsubsection
{\@startsection{subsubsection}{3}{\z@}{-8pt}{4pt}{\normalsize\bf}}
\def\paragraph{\@startsection
{paragraph}{4}{\z@}{3.25ex plus 1ex minus .2ex}{-1em}{\normalsize\bf}}
\def\subparagraph{\@startsection
{subparagraph}{4}{\parindent}{3.25ex plus 1ex minus
.2ex}{-1em}{\normalsize\bf}}
% Modify \appendix from art10.sty, to add ``Appendix''
\def\appendix{\par
\setcounter{section}{0}
\setcounter{subsection}{0}
\def\thesection{Appendix \Alph{section}}}
\font\tenupit=cmu10
\def \EdNote{{\tenupit Editor's note:\enspace }}
\endinput